// miniprogram/pages/splash-page.js
const app = getApp();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    //判断小程序的API，回调，参数，组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    refuseModalVisible: false,
    serverErrorModalVisible: false,
    isLoading: true,
    isNewUser: false
  },
  //授权回调
  bindGetUserInfo: function(e) {
    if (e.detail.userInfo) {
      //用户按了允许授权按钮
      var that = this;
      // 获取到用户的信息了，打印到控制台上看下
      console.log("用户的信息如下：");
      console.log(e.detail.userInfo);
      app.globalData.user.info = e.detail.userInfo;
      that.setData({
        isLoading: true
      })
      //获取openid 跳转页面
      that.getOpenid();
    } else {
      //弹出拒绝授权后的模态框
      this.setData({
        refuseModalVisible: true
      })
    }
  },
  //隐藏拒绝授权模态框
  hideRefuseModal: function() {
    this.setData({
      refuseModalVisible: false
    })
  },
  //判断是否已经加载过的用户
  isLoaded: function() {
    return app.globalData.user.openid && app.globalData.user.info
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    //如果是已经加载过的用户,直接跳转到首页,无需二次加载
    if (this.isLoaded()) {
      this.setData({
        isLoading: false
      })
      //跳转到列表页
      wx.redirectTo({
        url: '../main/dream-list-page/dream-list-page'　
      })
      return;
    }
    var date = require('../../util/common.js');
    var that = this;
    // 查看是否授权
    wx.getSetting({
      success: function(res) {
        if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
            success: function(res) {
              app.globalData.user.info = res.userInfo
              // 用户已经授权过,不需要显示授权页面,所以不需要改变 isHide 的值
              // 根据自己的需求有其他操作再补充
              // 我这里实现的是在用户授权成功后，调用微信的 wx.login 接口，从而获取code
              that.getOpenid();
            }
          });
        } else {
          //如果没有授权过,就说明是新用户
          that.setData({
            isNewUser: true,
            isLoading: false
          })
        }
      }
    });
    console.log(date.getDeviceHeight())
    this.setData({
      windowHeight: date.getDeviceHeight()
    })
  },
  getOpenid() {
    let that = this;
    wx.login({
      success: res => {
        // 获取到用户的 code 之后：res.coded
        console.log("用户的code:" + res.code);
        // 可以传给后台，再经过解析获取用户的 openid
        // 或者可以直接使用微信的提供的接口直接获取 openid ，方法如下：
        //获取openid
        wx.cloud.callFunction({
          name: 'login',
          success: res => {
            console.log('云函数获取到的openid: ', res.result.openid)
            // 获取到用户的 openid
            console.log(res);
            app.globalData.user.openid = res.result.openid;
            //成功后查询用户信息
            //todo
            //...
            //跳转到列表页
            wx.redirectTo({
              url: '../main/dream-list-page/dream-list-page'　　 // 页面 A
            })
          },
          fail: err => {
            //失败后弹出失败消息
            that.setData({
              serverErrorModalVisible: true
            })
          },
          complete: res => {
            that.setData({
              isLoading: false
            })
          }
        })
      }
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },


  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})